how does software licensing work